package com.it.file;

import java.io.File;
import java.io.IOException;

public class A02_FileDemo2 {
    public static void main(String[] args) throws IOException {
        searchFile(new File("D:/"), "Feishu.exe");
    }

    public static void searchFile(File dir, String filename) throws IOException {
        // 修复点1：正确判断目录有效性
        if (dir == null || !dir.exists() || !dir.isDirectory()) {
            return;
        }

        File[] files = dir.listFiles();
        if (files == null) {  // 处理无权限访问的目录
            return;
        }

        for (File f : files) {
            if (f.isFile()) {
                // 修复点2：精确匹配文件名
                if (f.getName().equals(filename)) {
                    System.out.println("找到了：" + f.getAbsolutePath());
                    Runtime.getRuntime().exec(f.getAbsolutePath());
                }
            } else {
                // 递归搜索子目录
                searchFile(f, filename);
            }
        }
    }
}
